﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Data.SqlClient;
using System.Windows.Forms;

using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraEditors.Repository;
using UI_PMQLThuPhi_LMD.CrystalReports;

namespace UI_PMQLThuPhi_LMD
{
    public partial class FrmBaoCaoKhachHang : DevExpress.XtraEditors.XtraForm
    {
        // LinQ database
        DataClasses1DataContext dc;

        // LinQ business object
        IEnumerable nhanVien;

        // Thao tác của người dùng đã được lưu/chưa được lưu
        Boolean saved;

        DialogResult result;

        // Khóa chính bảng Nhan_Vien dùng để truyền vào stored procedures
        Int32 nhanVienID;

        // Tên nhân viên
        String tenNhanVienThuPhi;


        public FrmBaoCaoKhachHang()
        {
            dc = new DataClasses1DataContext(SystemInfo.pub_ConnString);

            // nhanVien = dc.Nhan_Viens;

            nhanVien = dc.GetTable<Nhan_Vien>();

            InitializeComponent();
        }

        // Load form
        private void FormBaoCaoKhachHang_Load(object sender, EventArgs e)
        {
            gcDanhSachNhanVien.DataSource = nhanVien;
        }

        // Người dùng chọn một nhân viên
        private void gvDanhSachNhanVien_RowClick(object sender, RowClickEventArgs e)
        {
            ColumnView view = (ColumnView)sender;         
            Nhan_Vien row = (Nhan_Vien)view.GetRow(e.RowHandle);

            nhanVienID = row.NV_ID;
            tenNhanVienThuPhi = row.NV_Ten;

            Cursor.Current = Cursors.WaitCursor;

            if (nhanVienID >= 0)
            {
                // Connection
                SqlConnection myConnection = new SqlConnection(SystemInfo.pub_ConnString);

                try
                {
                    myConnection.Open();

                    String storedProcedureName = "sp_BaoCaoKhachHangTheoNhanVien";

                    SqlCommand commandObj = new SqlCommand(storedProcedureName, myConnection);
                    commandObj.CommandType = CommandType.StoredProcedure;
                    commandObj.Parameters.Add("@masonv", SqlDbType.Int).Value = nhanVienID;

                    DataTable dataTableObj = new DataTable();

                    SqlDataAdapter da = new SqlDataAdapter(commandObj);
                    da.Fill(dataTableObj);

                    RptBaoCaoKhachHang rptBaoCaoKhachHangObj = new RptBaoCaoKhachHang();
                    rptBaoCaoKhachHangObj.SetDataSource(dataTableObj);
                    rptBaoCaoKhachHangObj.SetParameterValue("paraTenNhanVienThuPhi", tenNhanVienThuPhi);

                    crystalReportViewer1.ReportSource = rptBaoCaoKhachHangObj;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    myConnection.Close();
                    Cursor.Current = Cursors.Default;
                }
            } 
        }

        // Tự điền số thứ tự cho grid
        private void gvDanhSachNhanVien_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "")
            {
                if (e.RowHandle >= 0)
                {
                    e.DisplayText = e.RowHandle.ToString() + 1;
                }
            }
        }

        private void barDong_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Close();
        }

    }
}